g_value_set_double (value, g_ascii_strtod (value_str, NULL));
return TRUE;
}
+ else if (type == GTK_TYPE_THEMING_ENGINE)
+ {
+ GtkThemingEngine *engine;
+
+ engine = gtk_theming_engine_load (value_str);
+ g_value_set_object (value, engine);
+ return TRUE;
+ }
else
g_warning ("Cannot parse string '%s' for type %s", value_str, g_type_name (type));
g_object_unref (provider_style);
}
}
+
+ gtk_style_set_get (priv->store, GTK_STATE_NORMAL,
+ "engine", &priv->theming_engine,
+ NULL);
}
void
#include "gtkstyleprovider.h"
#include "gtkstyleset.h"
#include "gtkprivate.h"
+#include "gtkthemingengine.h"
#include "gtkintl.h"
#include "gtkalias.h"
gtk_style_set_register_property ("font", PANGO_TYPE_FONT_DESCRIPTION);
gtk_style_set_register_property ("padding", GTK_TYPE_BORDER);
+ gtk_style_set_register_property ("engine", GTK_TYPE_THEMING_ENGINE);
g_type_class_add_private (object_class, sizeof (GtkStyleSetPrivate));
}
if (!engine)
{
- if (!default_engine)
+ if (G_UNLIKELY (!default_engine))
default_engine = g_object_new (GTK_TYPE_THEMING_ENGINE, NULL);
engine = default_engine;